// 0. 当前目录初始化 package.json    npm init -y
// 0. 安装： npm i mongoose
// 1. 引入mongoose
const mongoose = require('mongoose');

// 2. 建立与 mongodb服务器的链接
// 语法：         协议       域名     端口    数据库【可以存在也可以不存在（创建并链接）】
mongoose.connect('mongodb://127.0.0.1:27017/class0202');

// 3. 打开链接, 数据库链接成功，会执行成功的回调，回调函数是异步的
mongoose.connection.on('open', ()=>{
    console.log('数据库链接成功');
    // 4. 创建集合 Schema[数据骨架]， 表包括哪些字段，字段的数据类型是什么
    const userSchema = new mongoose.Schema({
        username:String,
        password:String,
        age:Number
    });
    // 5. 创建数据模型：·
    //    作用：操作表格中的记录(document)，
    // 语法：                        集合名
    // const userModel = mongoose.model('users', userSchema);
    const userModel = mongoose.model('user', userSchema, 'user');

    // 6. 用模型操作文档[数据]
    // 6-1. 插入一条记录
    // 以下代码会报错，因为7.0版本的mongoose不支持回调函数了
    // userModel.create({username:'zyx', password:'123123', age:21},function(err, data){
    //     console.log('create data: ', data);
    // })

    //新语法使用then来替代
    userModel.create({username:'zyx', password:'123123', age:21}).then(function(data){
        console.log('create data: ', data);// 插入成功后产生的新纪录对象[_id]
    })


})
// 数据库链接失败的回调，回调函数是异步的
mongoose.connection.on('error', ()=>{
    console.log('数据库链接失败');
})
console.log('mongodb end');